const BASE_URL = 'http://localhost:8016';

// const request = (options) => {
//     return new Promise((resolve, reject) => {
//         // 拼接完整的请求地址
//         const url = BASE_URL + options.url;

//         // 其余代码保持不变...
//         uni.request({
//             url: url,  // 使用完整的URL
//             // ...
//         });
//     });
// };


/**
 * 封装uni.request请求方法
 */
const request = (options) => {
    return new Promise((resolve, reject) => {
        // 获取存储的token
        const token = uni.getStorageSync('token') || '';
        const header = options.header || {};
		const url = BASE_URL + options.url;
        // 如果有token，添加到请求头 - 同时支持两种格式
        if (token) {
            header['Authorization'] = `Bearer ${token}`;
            header['token'] = token; // 保持兼容性
        }
		console.log(url)
        // 发起请求
        uni.request({
            url: url,
            method: options.method || 'GET',
            data: options.data || {},
            header: header,
            success: (res) => {
                // 统一处理响应
                if (res.statusCode === 200) {
                    // 判断业务状态码
                    if (res.data.code === 200) {
                        // 请求成功
                        resolve(res.data);
                    } else if (res.data.code === 401) {
                        // 未登录或token过期
                        uni.showToast({
                            title: '登录状态已过期，请重新登录',
                            icon: 'none'
                        });
                        // 跳转到登录页
                        setTimeout(() => {
                            uni.navigateTo({
                                url: '/pages/login/login'
                            });
                        }, 1500);
                        reject(res.data);
                    } else {
                        // 其他业务错误
                        uni.showToast({
                            title: res.data.message || res.data.msg || '请求失败', 
                            icon: 'none'
                        });
                        reject(res.data);
                    }
                } else {
                    // HTTP状态码错误
                    uni.showToast({
                        title: '网络错误',
                        icon: 'none'
                    });
                    reject(res);
                }
            },
            fail: (err) => {
                // 请求失败（网络错误等）
                uni.showToast({
                    title: '请求失败',
                    icon: 'none'
                });
                reject(err);
            }
        });
    });
};

export default request;
